package offer;

public class offer46 {
}
class Solution46 {
    public int translateNum(int num) {
// 1.定义dp[i]表示到第i个位置有dp[i]种翻译方法
// 2.当nums[i]<6&&nums[i-1]<3时到第i个位置可以从dp[i-1]过来也可以从dp[i-2]
//当nums[i]>=6||nums[i-1]>=3时只能从dp[i-2]这个地方过来
//初始条件是只有一个数字的时候只有一个方法
//当有两个数字的时候如果第一个数字小于3,第二个数字小于6则有两种方法
//当有两个数字的时候第一个数字大于等于3则只有一种方法

  String str = String.valueOf(num);
  int [] dp = new int[str.length()];
  if(str.length()==1)
      return 1;
  dp[0]  = 1;
  if(str.length()>=2)
  {
      String s = str.substring(0,2);
      int i = Integer.valueOf(s);
      if(i>=10&&i<=25)
      {
          dp[1] =2;
      }else dp[1] =1;

  }
        for (int i = 2; i <str.length() ; i++) {
            String s = str.substring(i-1,i+1);
            int data = Integer.valueOf(s);
            if(data<=25&&data>=10)
            {
                dp[i] = dp[i-1]+dp[i-2];
            }else
            {
                dp[i] = dp[i-1];
            }
        }
        return dp[str.length()-1];




    }

    public static void main(String[] args) {
        int num = 123;
        String str = String.valueOf(num);
        char [] c = str.toCharArray();
    }
}